Koleksionet Array
Nje variabel eshte nje hapesire ne memorie qe mban nje numer ose tekst. Por, nje variabel mund te mbaje vetem nje vlere te vetme dhe kjo gje ne shume raste eshte nje problem. Zgjidhja vjen me koleksionet e tipit Array (shkurt array) te cilat mbajn vlera te shumta ne nje variabel te vetme.
Per shembull, nqs. kemi nje liste me elemente, supozojme nje liste me titujt e filmave te fundit. Ne variabla te vecanta ata mund te ruhen ne kete lloj forme:
<?php
$film1 = "Kill Zone 2";
$film2 = "Don't breathe";
$film3 = "The Invitation";
...
Po sikur te duam te kalojme ne menyre ciklike, njeri pas tjetrit (looping) dhe te gjejm nje film specifik? Po sikur te kemi 200 filma dhe jo vetem 3 si ne shembullin e mesiperm?
Ne kete rast duhet te perdorim koleksionet e tipit Array, mbi te cilet mund te kryejme nje sere veprimesh. Nje array
mund te mbaje te gjithe listen me filma ne nje variabel te vetme, dhe ne mund ti aksesojme vlerat duke ju referuar emrit te array-t.
Ne PHP ekzistojne tre lloje te koleksioneve Array:
- Array Numerik - Nje array me indekse numerike
- Array Associative - Nje array ku cdo cels ID eshte i lidhur me nje vlere [ "celes" => "vlere" ]
- Array Multidimensional - Nje array qe mban nje ose me shume array te tjere
Array Numerik
Nje array numerik ruan cdo element te saj me nje indeks numerik. Gjenden dy metoda per te krijuar nje array numerik:
- Ne arrayn-n e meposhtem indekset vendosen automatikisht duke filluar nga zero
<?php
$filma = array("Kill Zone 2", "Don't breathe", "The Invitation");
ose
<?php
$filma = [ "Kill Zone 2", "Don't breathe", "The Invitation" ];
- Ne array-n e meposhtme indekset vendosen manualisht:
<?php
$filma[0]="Kill Zone 2";
$filma[1]="Don't breathe";
$filma[2]="The Invitation";
Ne keto raste ne i aksesojme vlerat e array-t duke ju referuar indekseve, si ne rastin e meposhtem:
<?php
//Printojme filmin e pare:
print ("Filmi i pare eshte: " . $filma[0]);
Outputi do te jete: Filmi i pare eshte: Kill Zone 2
<?php
//Printojme filmin e trete:
print ("Filmi i trete eshte: " . $filma[2]);
Outputi do te jete: Filmi i trete eshte: The Invitation
Duhet te kemi kujdes pasi indekset (ne array-t numerik) fillojne nga numri 0. Pra, elementi i pare i array-t ka indeksin 0, elementi i dyte ka indeksin 1, elementi i trete ka indeksin 2 e keshtu me radhe.
Array Associative
Nje array associative permban celesa identifikues (key) te lidhura me nje vlere. Celesat identifikues ne ndryshim nga indekset numerike mund te permbajne cfaredo lloj vlere p.sh. tekst. Ne nje array assoiciative ne mund te perdorim vlerat si celesa, dhe te vendosim vlera tek to.
Per shembull, le te perdorim nje array per te vendosur moshat tek persona te ndryshem:
<?php
$moshat = array("Endri" => 25, "Andri" => 26, "Arber" => 27);
ose
<?php
$moshat = [ "Endri" => 25, "Andri" => 26, "Arber" => 27 ];
Nje menyre tjeter per te krijuar array associative:
<?php
$moshat['Endri'] = 25;
$moshat['Andri'] = 26;
$moshat['Arber'] = 27;
Menyra sesi i perdorim eshte paraqitur me poshte:
<?php
print ("Endri eshte " . $moshat['Endri'] . " vjec.");
Outputi: Endri eshte 25 vjec.
Array Multidimensional
Ne nje array multidimensional, cdo element i array-t mund te jete gjithashtu nje array, dhe cdo element ne array-n e brendshem mund te jete gjithashtu nje array, e keshtu me radhe.
Le te krijojme nje array multidimensional me disa celesa te krijuar manualisht, dhe disa indekse te krijuar automatikishgt:
<?php
$kurse = array(
"Programim" => array(
"Java",
"PHP",
"C#"
),
"Databaze" => array(
"MySql",
"Sql Server",
"Sqlite"
)
)
Nqs. do te printohej, array i mesiperm do te dukej si me poshte:
Array (
[Programim] => Array (
[0] => Java
[1] => PHP
[2] => C#
)
[Databaze] => Array (
[0] => MySql
[1] => Sql Server
[2] => Sqlite
)
)
Le te printojme ne ekran nje vlere te vetme nga array i mesiperm:
<?php
print("Kursi im i preferuar eshte kursi per " . $kurse['Programim'][1]);
Outputi: Kursi im i preferuar eshte kursi per PHP